<!-- HTML header for doxygen 1.8.9.1-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.11"/>
<meta name="robots" content="NOINDEX, NOFOLLOW" /> <!-- Prevent indexing by search engines -->
<title>Compute Library: IArray&lt; T &gt; Class Template Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<script type="text/javascript">
  $(document).ready(initResizable);
  $(window).load(resizeHeight);
</script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
  $(document).ready(function() { init_search(); });
</script>
<script type="text/x-mathjax-config">
  MathJax.Hub.Config({
    extensions: ["tex2jax.js"],
    jax: ["input/TeX","output/HTML-CSS"],
});
</script><script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td style="padding-left: 0.5em;">
   <div id="projectname">Compute Library
   &#160;<span id="projectnumber">18.05</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.11 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
  <div id="navrow1" class="tabs">
    <ul class="tablist">
      <li><a href="index.xhtml"><span>Main&#160;Page</span></a></li>
      <li><a href="pages.xhtml"><span>Related&#160;Pages</span></a></li>
      <li><a href="namespaces.xhtml"><span>Namespaces</span></a></li>
      <li class="current"><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="files.xhtml"><span>Files</span></a></li>
      <li>
        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
      </li>
    </ul>
  </div>
  <div id="navrow2" class="tabs2">
    <ul class="tablist">
      <li><a href="annotated.xhtml"><span>Data&#160;Structures</span></a></li>
      <li><a href="classes.xhtml"><span>Data&#160;Structure&#160;Index</span></a></li>
      <li><a href="inherits.xhtml"><span>Class&#160;Hierarchy</span></a></li>
      <li><a href="functions.xhtml"><span>Data&#160;Fields</span></a></li>
    </ul>
  </div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
$(document).ready(function(){initNavTree('classarm__compute_1_1_i_array.xhtml','');});
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-methods">Public Member Functions</a>  </div>
  <div class="headertitle">
<div class="title">IArray&lt; T &gt; Class Template Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">

<p><a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a> of type T.  
 <a href="classarm__compute_1_1_i_array.xhtml#details">More...</a></p>

<p><code>#include &lt;<a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:a409cec620a7e56a535b079a0fe37695a"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a409cec620a7e56a535b079a0fe37695a">IArray</a> ()</td></tr>
<tr class="memdesc:a409cec620a7e56a535b079a0fe37695a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor.  <a href="#a409cec620a7e56a535b079a0fe37695a">More...</a><br /></td></tr>
<tr class="separator:a409cec620a7e56a535b079a0fe37695a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ddd3791f151a0ad74b270776ff3726c"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a7ddd3791f151a0ad74b270776ff3726c">IArray</a> (size_t <a class="el" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>)</td></tr>
<tr class="memdesc:a7ddd3791f151a0ad74b270776ff3726c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor: initializes an array which can contain up to max_num_points values.  <a href="#a7ddd3791f151a0ad74b270776ff3726c">More...</a><br /></td></tr>
<tr class="separator:a7ddd3791f151a0ad74b270776ff3726c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ff0fb106d58091d2b4363e808f200a3"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a> () const </td></tr>
<tr class="memdesc:a2ff0fb106d58091d2b4363e808f200a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Maximum number of values which can be stored in this array.  <a href="#a2ff0fb106d58091d2b4363e808f200a3">More...</a><br /></td></tr>
<tr class="separator:a2ff0fb106d58091d2b4363e808f200a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acaeb87c4bcccaf15bb25bd2c8e44658a"><td class="memItemLeft" align="right" valign="top">virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#acaeb87c4bcccaf15bb25bd2c8e44658a">~IArray</a> ()=default</td></tr>
<tr class="memdesc:acaeb87c4bcccaf15bb25bd2c8e44658a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default virtual destructor.  <a href="#acaeb87c4bcccaf15bb25bd2c8e44658a">More...</a><br /></td></tr>
<tr class="separator:acaeb87c4bcccaf15bb25bd2c8e44658a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6dc031c18a14371984493b25a4230f59"><td class="memItemLeft" align="right" valign="top">size_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a6dc031c18a14371984493b25a4230f59">num_values</a> () const </td></tr>
<tr class="memdesc:a6dc031c18a14371984493b25a4230f59"><td class="mdescLeft">&#160;</td><td class="mdescRight">Number of values currently stored in the array.  <a href="#a6dc031c18a14371984493b25a4230f59">More...</a><br /></td></tr>
<tr class="separator:a6dc031c18a14371984493b25a4230f59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9031bfcabdaae3ac3e6e349446e282ff"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a9031bfcabdaae3ac3e6e349446e282ff">push_back</a> (const T &amp;val)</td></tr>
<tr class="memdesc:a9031bfcabdaae3ac3e6e349446e282ff"><td class="mdescLeft">&#160;</td><td class="mdescRight">Append the passed argument to the end of the array if there is room.  <a href="#a9031bfcabdaae3ac3e6e349446e282ff">More...</a><br /></td></tr>
<tr class="separator:a9031bfcabdaae3ac3e6e349446e282ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8bb3912a3ce86b15842e79d0b421204"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#ac8bb3912a3ce86b15842e79d0b421204">clear</a> ()</td></tr>
<tr class="memdesc:ac8bb3912a3ce86b15842e79d0b421204"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clear all the points from the array.  <a href="#ac8bb3912a3ce86b15842e79d0b421204">More...</a><br /></td></tr>
<tr class="separator:ac8bb3912a3ce86b15842e79d0b421204"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afd912c5902331232c8a806fcb2d6eaad"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#afd912c5902331232c8a806fcb2d6eaad">overflow</a> () const </td></tr>
<tr class="memdesc:afd912c5902331232c8a806fcb2d6eaad"><td class="mdescLeft">&#160;</td><td class="mdescRight">Did we lose some values because the array is too small?  <a href="#afd912c5902331232c8a806fcb2d6eaad">More...</a><br /></td></tr>
<tr class="separator:afd912c5902331232c8a806fcb2d6eaad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4b55468220c2029e7ee1594e34b2b21f"><td class="memItemLeft" align="right" valign="top">virtual T *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f">buffer</a> () const =0</td></tr>
<tr class="memdesc:a4b55468220c2029e7ee1594e34b2b21f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the first element of the array.  <a href="#a4b55468220c2029e7ee1594e34b2b21f">More...</a><br /></td></tr>
<tr class="separator:a4b55468220c2029e7ee1594e34b2b21f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a861d8aa0fbeb6a0a33ec8d556b7e8657"><td class="memItemLeft" align="right" valign="top">virtual T &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#a861d8aa0fbeb6a0a33ec8d556b7e8657">at</a> (size_t index) const </td></tr>
<tr class="memdesc:a861d8aa0fbeb6a0a33ec8d556b7e8657"><td class="mdescLeft">&#160;</td><td class="mdescRight">Reference to the element of the array located at the given index.  <a href="#a861d8aa0fbeb6a0a33ec8d556b7e8657">More...</a><br /></td></tr>
<tr class="separator:a861d8aa0fbeb6a0a33ec8d556b7e8657"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae21b0e95ded2dcfb5e62848ea0193828"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classarm__compute_1_1_i_array.xhtml#ae21b0e95ded2dcfb5e62848ea0193828">resize</a> (size_t num)</td></tr>
<tr class="memdesc:ae21b0e95ded2dcfb5e62848ea0193828"><td class="mdescLeft">&#160;</td><td class="mdescRight">Resizes the array to contain "num" elements.  <a href="#ae21b0e95ded2dcfb5e62848ea0193828">More...</a><br /></td></tr>
<tr class="separator:ae21b0e95ded2dcfb5e62848ea0193828"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><h3>template&lt;class T&gt;<br />
class arm_compute::IArray&lt; T &gt;</h3>

<p><a class="el" href="classarm__compute_1_1_array.xhtml" title="Basic implementation of the IArray interface which allocates a static number of T values...">Array</a> of type T. </p>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00041">41</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a class="anchor" id="a409cec620a7e56a535b079a0fe37695a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default constructor. </p>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00045">45</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00046"></a><span class="lineno">   46</span>&#160;        : _num_values(0), _max_size(0) {};</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a7ddd3791f151a0ad74b270776ff3726c"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a> </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>max_num_values</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Constructor: initializes an array which can contain up to max_num_points values. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">max_num_values</td><td>Maximum number of values the array will be able to stored </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00051">51</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00052"></a><span class="lineno">   52</span>&#160;        : _num_values(0), _max_size(<a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>)</div><div class="line"><a name="l00053"></a><span class="lineno">   53</span>&#160;    {</div><div class="line"><a name="l00054"></a><span class="lineno">   54</span>&#160;    }</div><div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="acaeb87c4bcccaf15bb25bd2c8e44658a"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual ~<a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a> </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span><span class="mlabel">default</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Default virtual destructor. </p>

<p>Referenced by <a class="el" href="_i_array_8h_source.xhtml#l00059">IArray&lt; NELKInternalKeypoint &gt;::max_num_values()</a>.</p>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a class="anchor" id="a861d8aa0fbeb6a0a33ec8d556b7e8657"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual T&amp; at </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Reference to the element of the array located at the given index. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">index</td><td>Index of the element</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A reference to the element of the array located at the given index. </dd></dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00118">118</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>

<p>Referenced by <a class="el" href="_i_array_8h_source.xhtml#l00079">IArray&lt; NELKInternalKeypoint &gt;::push_back()</a>.</p>
<div class="fragment"><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;    {</div><div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(<a class="code" href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f">buffer</a>() == <span class="keyword">nullptr</span>);</div><div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(index &gt;= <a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>());</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;        <span class="keywordflow">return</span> <a class="code" href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f">buffer</a>()[index];</div><div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    }</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a4b55468220c2029e7ee1594e34b2b21f"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f">arm_compute::IArray::buffer</a></div><div class="ttdeci">virtual T * buffer() const =0</div><div class="ttdoc">Pointer to the first element of the array. </div></div>
<div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a4b55468220c2029e7ee1594e34b2b21f"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual T* buffer </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Pointer to the first element of the array. </p>
<p>Other elements of the array can be accessed using <a class="el" href="classarm__compute_1_1_i_array.xhtml#a4b55468220c2029e7ee1594e34b2b21f" title="Pointer to the first element of the array. ">buffer()</a>[idx] for 0 &lt;= idx &lt; num_poins().</p>
<dl class="section return"><dt>Returns</dt><dd>A pointer to the first element of the array </dd></dl>

<p>Implemented in <a class="el" href="classarm__compute_1_1_i_c_l_array.xhtml#a46fdef12397c4404e7706cba3568b42d">ICLArray&lt; T &gt;</a>, <a class="el" href="classarm__compute_1_1_array.xhtml#a46fdef12397c4404e7706cba3568b42d">Array&lt; T &gt;</a>, and <a class="el" href="classarm__compute_1_1_array.xhtml#a46fdef12397c4404e7706cba3568b42d">Array&lt; NELKInternalKeypoint &gt;</a>.</p>

<p>Referenced by <a class="el" href="_i_array_8h_source.xhtml#l00118">IArray&lt; NELKInternalKeypoint &gt;::at()</a>, and <a class="el" href="_i_array_8h_source.xhtml#l00101">IArray&lt; NELKInternalKeypoint &gt;::overflow()</a>.</p>

</div>
</div>
<a class="anchor" id="ac8bb3912a3ce86b15842e79d0b421204"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void clear </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Clear all the points from the array. </p>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00092">92</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;    {</div><div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;        _num_values = 0;</div><div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a2ff0fb106d58091d2b4363e808f200a3"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t max_num_values </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Maximum number of values which can be stored in this array. </p>
<dl class="section return"><dt>Returns</dt><dd>Maximum number of values </dd></dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00059">59</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>

<p>Referenced by <a class="el" href="_i_array_8h_source.xhtml#l00118">IArray&lt; NELKInternalKeypoint &gt;::at()</a>, <a class="el" href="_c_l_array_8h_source.xhtml#l00084">CLArray&lt; T &gt;::cl_buffer()</a>, <a class="el" href="_i_array_8h_source.xhtml#l00101">IArray&lt; NELKInternalKeypoint &gt;::overflow()</a>, <a class="el" href="_i_array_8h_source.xhtml#l00079">IArray&lt; NELKInternalKeypoint &gt;::push_back()</a>, and <a class="el" href="_i_array_8h_source.xhtml#l00129">IArray&lt; NELKInternalKeypoint &gt;::resize()</a>.</p>
<div class="fragment"><div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;    {</div><div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;        <span class="keywordflow">return</span> _max_size;</div><div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a6dc031c18a14371984493b25a4230f59"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">size_t num_values </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Number of values currently stored in the array. </p>
<dl class="section return"><dt>Returns</dt><dd>Number of values currently stored in the array or max_num_values + 1 if the array is overflowed. </dd></dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00069">69</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    {</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <span class="keywordflow">return</span> _num_values;</div><div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;    }</div></div><!-- fragment -->
</div>
</div>
<a class="anchor" id="afd912c5902331232c8a806fcb2d6eaad"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool overflow </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Did we lose some values because the array is too small? </p>
<dl class="section return"><dt>Returns</dt><dd>True if we tried to add a value using <a class="el" href="classarm__compute_1_1_i_array.xhtml#a9031bfcabdaae3ac3e6e349446e282ff" title="Append the passed argument to the end of the array if there is room. ">push_back()</a> but there wasn't any room left to store it. False if all the values were successfully added to the array. </dd></dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00101">101</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    {</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;        <span class="keywordflow">return</span> _num_values &gt; <a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>();</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    }</div><div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="a9031bfcabdaae3ac3e6e349446e282ff"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool push_back </td>
          <td>(</td>
          <td class="paramtype">const T &amp;&#160;</td>
          <td class="paramname"><em>val</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Append the passed argument to the end of the array if there is room. </p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">val</td><td>Value to add to the array.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the point was successfully added to the array. False if the array is full and the point couldn't be added. </dd></dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00079">79</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    {</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(0 == _max_size);</div><div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;        <span class="keywordflow">if</span>(_num_values &gt;= <a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>())</div><div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;        {</div><div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;            _num_values = <a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>() + 1;</div><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;            <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;        }</div><div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        <a class="code" href="classarm__compute_1_1_i_array.xhtml#a861d8aa0fbeb6a0a33ec8d556b7e8657">at</a>(_num_values) = val;</div><div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;        _num_values++;</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;    }</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a861d8aa0fbeb6a0a33ec8d556b7e8657"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a861d8aa0fbeb6a0a33ec8d556b7e8657">arm_compute::IArray::at</a></div><div class="ttdeci">virtual T &amp; at(size_t index) const </div><div class="ttdoc">Reference to the element of the array located at the given index. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00118">IArray.h:118</a></div></div>
</div><!-- fragment -->
</div>
</div>
<a class="anchor" id="ae21b0e95ded2dcfb5e62848ea0193828"></a>
<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void resize </td>
          <td>(</td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>num</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Resizes the array to contain "num" elements. </p>
<p>If "num" is smaller than the maximum array size, the content is reduced to its first "num" elements, "num" elements can't be bigger than the maximum number of values which can be stored in this array.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">num</td><td>The new array size in number of elements </td></tr>
  </table>
  </dd>
</dl>

<p>Definition at line <a class="el" href="_i_array_8h_source.xhtml#l00129">129</a> of file <a class="el" href="_i_array_8h_source.xhtml">IArray.h</a>.</p>
<div class="fragment"><div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;    {</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;        <a class="code" href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a>(num &gt; <a class="code" href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">max_num_values</a>());</div><div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;        _num_values = num;</div><div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    };</div><div class="ttc" id="_error_8h_xhtml_a54a6080c9f4df1f908e57a9bbb46f5da"><div class="ttname"><a href="_error_8h.xhtml#a54a6080c9f4df1f908e57a9bbb46f5da">ARM_COMPUTE_ERROR_ON</a></div><div class="ttdeci">#define ARM_COMPUTE_ERROR_ON(cond)</div><div class="ttdoc">If the condition is true then an error message is printed and an exception thrown. </div><div class="ttdef"><b>Definition:</b> <a href="_error_8h_source.xhtml#l00328">Error.h:328</a></div></div>
<div class="ttc" id="classarm__compute_1_1_i_array_xhtml_a2ff0fb106d58091d2b4363e808f200a3"><div class="ttname"><a href="classarm__compute_1_1_i_array.xhtml#a2ff0fb106d58091d2b4363e808f200a3">arm_compute::IArray::max_num_values</a></div><div class="ttdeci">size_t max_num_values() const </div><div class="ttdoc">Maximum number of values which can be stored in this array. </div><div class="ttdef"><b>Definition:</b> <a href="_i_array_8h_source.xhtml#l00059">IArray.h:59</a></div></div>
</div><!-- fragment -->
</div>
</div>
<hr/>The documentation for this class was generated from the following file:<ul>
<li>arm_compute/core/<a class="el" href="_i_array_8h_source.xhtml">IArray.h</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><a class="el" href="namespacearm__compute.xhtml">arm_compute</a></li><li class="navelem"><a class="el" href="classarm__compute_1_1_i_array.xhtml">IArray</a></li>
    <li class="footer">Generated on Wed May 23 2018 11:36:41 for Compute Library by
    <a href="http://www.doxygen.org/index.html">
    <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.11 </li>
  </ul>
</div>
</body>
</html>
